During the process of developing an electronic system, the behavior of the electronic system may be simulated based on a specification of the design of the electronic system. Simulating the electronic system helps to verify correct behavior prior to physical implementation of a circuit for the electronic system. Wasted manufacturing costs due to faulty design may thereby be avoided.
Numerous tools are available for simulating electronic systems including, for example, high-level modeling systems (HLMSs). Co-simulation may also be used when the design may be more efficiently simulated by simulating different parts of the design on different simulation platforms (“co-simulation platforms”).
Example co-simulation platforms include both software-based and hardware-based platforms. In a software-based platform, a portion of the design is simulated with software running on a workstation, for example. In a hardware-based platform, a portion of the design is emulated on a hardware platform that includes a programmable logic device (PLD), such as a field programmable gate array (FPGA). Co-simulation using a hardware platform may reduce the time required for a simulation run. The Modelsim simulator and the NC-SIM simulator from Cadence are example software-based platforms, and the Wildcard development platform from Annapolis Microsystems and the Benone development platform from Nallatech are example hardware-based platforms. The WildCard and Benone platforms are often used for algorithm exploration and design prototyping.
Most design tools recognize and support a hierarchical specification of the design, which allows the design to be specified and viewed at different levels of abstraction. The term “block” is sometimes used to refer to a collection of parts of a design that perform a function. Blocks consume inputs and produce outputs as a function of internal state, blocks are connected by arcs, and arcs conduct data between blocks. At some level in this hierarchical framework, simulating the design involves moving data from one block of the design to another block of the design.
An HLMS, such as System Generator for DSP (Sysgen) HLMS, may permit a block of a design for an electronic system to be translated into PLD configuration data that may be used to configure a hardware-based co-simulation platform. The HLMS software may include a “hardware co-simulation block” as a proxy for the hardware based co-simulation platform. Like other blocks of the electronic system, the hardware co-simulation block consumes inputs and produces outputs. The hardware co-simulation block transfers the inputs for the block from the HLMS software to the hardware-based co-simulation platform and transfers the outputs of the block from the hardware-based co-simulation platform to the HLMS software.
Emulating a design block on a hardware-based co-simulation platform may reduce the time required for a simulation run for the electronic system. However, verifying correct behavior of the electronic system may be time-consuming because the encapsulation of the design block in the hardware-based co-simulation platform may prevent accessing the internal signals of the design block.
The present invention may address one or more of the above issues.